home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Terminals.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  12.1 KB  |  356 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Terminals.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Terminals;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __TERMINALS__}
  27. {$SETC __TERMINALS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC TerminalsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __DIALOGS__}
  35. {$I Dialogs.p}
  36. {$ENDC}
  37. {    Errors.p                                                    }
  38. {        ConditionalMacros.p                                        }
  39. {    Memory.p                                                    }
  40. {        Types.p                                                    }
  41. {        MixedMode.p                                                }
  42. {    Windows.p                                                    }
  43. {        Quickdraw.p                                                }
  44. {            QuickdrawText.p                                        }
  45. {        Events.p                                                }
  46. {            OSUtils.p                                            }
  47. {        Controls.p                                                }
  48. {            Menus.p                                                }
  49. {    TextEdit.p                                                    }
  50.  
  51. {$IFC UNDEFINED __CTBUTILITIES__}
  52. {$I CTBUtilities.p}
  53. {$ENDC}
  54. {    StandardFile.p                                                }
  55. {        Files.p                                                    }
  56. {    AppleTalk.p                                                    }
  57.  
  58. {$IFC UNDEFINED __CONNECTIONS__}
  59. {$I Connections.p}
  60. {$ENDC}
  61.  
  62. {$PUSH}
  63. {$ALIGN MAC68K}
  64. {$LibExport+}
  65.  
  66. CONST
  67. { current Terminal Manager version     }
  68.     curTMVersion                = 2;
  69. { current Terminal Manager Environment Record version     }
  70.     curTermEnvRecVers            = 0;
  71. { error codes    }
  72.     tmGenericError                = -1;
  73.     tmNoErr                        = 0;
  74.     tmNotSent                    = 1;
  75.     tmEnvironsChanged            = 2;
  76.     tmNotSupported                = 7;
  77.     tmNoTools                    = 8;
  78.  
  79.     
  80. TYPE
  81.     TMErr = OSErr;
  82.  
  83.  
  84. CONST
  85.     tmInvisible                    = 1 * (2**(0));
  86.     tmSaveBeforeClear            = 1 * (2**(1));
  87.     tmNoMenus                    = 1 * (2**(2));
  88.     tmAutoScroll                = 1 * (2**(3));
  89.     tmConfigChanged                = 1 * (2**(4));
  90.  
  91.     
  92. TYPE
  93.     TMFlags = LONGINT;
  94.  
  95.  
  96. CONST
  97.     selTextNormal                = 1 * (2**(0));
  98.     selTextBoxed                = 1 * (2**(1));
  99.     selGraphicsMarquee            = 1 * (2**(2));
  100.     selGraphicsLasso            = 1 * (2**(3));
  101.     tmSearchNoDiacrit            = 1 * (2**(8));
  102.     tmSearchNoCase                = 1 * (2**(9));
  103.  
  104.     
  105. TYPE
  106.     TMSearchTypes = INTEGER;
  107.  
  108.     TMSelTypes = INTEGER;
  109.  
  110.  
  111. CONST
  112.     cursorText                    = 1;
  113.     cursorGraphics                = 2;
  114.  
  115.     
  116. TYPE
  117.     TMCursorTypes = INTEGER;
  118.  
  119.  
  120. CONST
  121.     tmTextTerminal                = 1 * (2**(0));
  122.     tmGraphicsTerminal            = 1 * (2**(1));
  123.  
  124.     
  125. TYPE
  126.     TMTermTypes = INTEGER;
  127.  
  128.     TermDataBlock = RECORD
  129.         flags:                    TMTermTypes;
  130.         theData:                Handle;
  131.         auxData:                Handle;
  132.         reserved:                LONGINT;
  133.     END;
  134.     TermDataBlockPtr = ^TermDataBlock;
  135.     TermDataBlockH = ^TermDataBlockPtr;
  136.     TermDataBlockHandle = ^TermDataBlockPtr;
  137.  
  138.     TermEnvironRec = RECORD
  139.         version:                INTEGER;
  140.         termType:                TMTermTypes;
  141.         textRows:                INTEGER;
  142.         textCols:                INTEGER;
  143.         cellSize:                Point;
  144.         graphicSize:            Rect;
  145.         slop:                    Point;
  146.         auxSpace:                Rect;
  147.     END;
  148.     TermEnvironPtr = ^TermEnvironRec;
  149.  
  150.     TMSelection = RECORD
  151.         CASE INTEGER OF
  152.         0: (
  153.             selRect:                    Rect;
  154.            );
  155.         1: (
  156.             selRgnHandle:                RgnHandle;
  157.            );
  158.     END;
  159.     TermPtr = ^TermRecord;
  160.     TermHandle = ^TermPtr;
  161.  
  162.     TerminalSendProcPtr = ProcPtr;  { FUNCTION TerminalSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags): LONGINT; }
  163.     TerminalBreakProcPtr = ProcPtr;  { PROCEDURE TerminalBreak(duration: LONGINT; refCon: LONGINT); }
  164.     TerminalCacheProcPtr = ProcPtr;  { FUNCTION TerminalCache(refCon: LONGINT; theTermData: TermDataBlockPtr): LONGINT; }
  165.     TerminalSearchCallBackProcPtr = ProcPtr;  { PROCEDURE TerminalSearchCallBack(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect); }
  166.     TerminalClikLoopProcPtr = ProcPtr;  { FUNCTION TerminalClikLoop(refCon: LONGINT): BOOLEAN; }
  167.     TerminalEnvironsProcPtr = ProcPtr;  { FUNCTION TerminalEnvirons(refCon: LONGINT; VAR theEnvirons: TermEnvironRec): CMErr; }
  168.     TerminalChooseIdleProcPtr = ProcPtr;  { PROCEDURE TerminalChooseIdle; }
  169.     TerminalToolDefProcPtr = ProcPtr;  { FUNCTION TerminalToolDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  170.     TerminalSendUPP = UniversalProcPtr;
  171.     TerminalBreakUPP = UniversalProcPtr;
  172.     TerminalCacheUPP = UniversalProcPtr;
  173.     TerminalSearchCallBackUPP = UniversalProcPtr;
  174.     TerminalClikLoopUPP = UniversalProcPtr;
  175.     TerminalEnvironsUPP = UniversalProcPtr;
  176.     TerminalChooseIdleUPP = UniversalProcPtr;
  177.     TerminalToolDefUPP = UniversalProcPtr;
  178.  
  179.     TermRecord = RECORD
  180.         procID:                    INTEGER;
  181.         flags:                    TMFlags;
  182.         errCode:                TMErr;
  183.         refCon:                    LONGINT;
  184.         userData:                LONGINT;
  185.         defProc:                TerminalToolDefUPP;
  186.         config:                    Ptr;
  187.         oldConfig:                Ptr;
  188.         environsProc:            TerminalEnvironsUPP;
  189.         reserved1:                LONGINT;
  190.         reserved2:                LONGINT;
  191.         tmPrivate:                Ptr;
  192.         sendProc:                TerminalSendUPP;
  193.         breakProc:                TerminalBreakUPP;
  194.         cacheProc:                TerminalCacheUPP;
  195.         clikLoop:                TerminalClikLoopUPP;
  196.         owner:                    WindowPtr;
  197.         termRect:                Rect;
  198.         viewRect:                Rect;
  199.         visRect:                Rect;
  200.         lastIdle:                LONGINT;
  201.         selection:                TMSelection;
  202.         selType:                TMSelTypes;
  203.         mluField:                LONGINT;
  204.     END;
  205. CONST
  206.     uppTerminalSendProcInfo = $00002FF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 4 byte result; }
  207.     uppTerminalBreakProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  208.     uppTerminalCacheProcInfo = $000003F0; { FUNCTION (4 byte param, 4 byte param): 4 byte result; }
  209.     uppTerminalSearchCallBackProcInfo = $00000EC0; { PROCEDURE (4 byte param, 2 byte param, 4 byte param); }
  210.     uppTerminalClikLoopProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  211.     uppTerminalEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  212.     uppTerminalChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  213.     uppTerminalToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  214.  
  215. FUNCTION NewTerminalSendProc(userRoutine: TerminalSendProcPtr): TerminalSendUPP;
  216.     {$IFC NOT GENERATINGCFM }
  217.     INLINE $2E9F;
  218.     {$ENDC}
  219.  
  220. FUNCTION NewTerminalBreakProc(userRoutine: TerminalBreakProcPtr): TerminalBreakUPP;
  221.     {$IFC NOT GENERATINGCFM }
  222.     INLINE $2E9F;
  223.     {$ENDC}
  224.  
  225. FUNCTION NewTerminalCacheProc(userRoutine: TerminalCacheProcPtr): TerminalCacheUPP;
  226.     {$IFC NOT GENERATINGCFM }
  227.     INLINE $2E9F;
  228.     {$ENDC}
  229.  
  230. FUNCTION NewTerminalSearchCallBackProc(userRoutine: TerminalSearchCallBackProcPtr): TerminalSearchCallBackUPP;
  231.     {$IFC NOT GENERATINGCFM }
  232.     INLINE $2E9F;
  233.     {$ENDC}
  234.  
  235. FUNCTION NewTerminalClikLoopProc(userRoutine: TerminalClikLoopProcPtr): TerminalClikLoopUPP;
  236.     {$IFC NOT GENERATINGCFM }
  237.     INLINE $2E9F;
  238.     {$ENDC}
  239.  
  240. FUNCTION NewTerminalEnvironsProc(userRoutine: TerminalEnvironsProcPtr): TerminalEnvironsUPP;
  241.     {$IFC NOT GENERATINGCFM }
  242.     INLINE $2E9F;
  243.     {$ENDC}
  244.  
  245. FUNCTION NewTerminalChooseIdleProc(userRoutine: TerminalChooseIdleProcPtr): TerminalChooseIdleUPP;
  246.     {$IFC NOT GENERATINGCFM }
  247.     INLINE $2E9F;
  248.     {$ENDC}
  249.  
  250. FUNCTION NewTerminalToolDefProc(userRoutine: TerminalToolDefProcPtr): TerminalToolDefUPP;
  251.     {$IFC NOT GENERATINGCFM }
  252.     INLINE $2E9F;
  253.     {$ENDC}
  254.  
  255. FUNCTION CallTerminalSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags; userRoutine: TerminalSendUPP): LONGINT;
  256.     {$IFC NOT GENERATINGCFM}
  257.     INLINE $205F, $4E90;
  258.     {$ENDC}
  259.  
  260. PROCEDURE CallTerminalBreakProc(duration: LONGINT; refCon: LONGINT; userRoutine: TerminalBreakUPP);
  261.     {$IFC NOT GENERATINGCFM}
  262.     INLINE $205F, $4E90;
  263.     {$ENDC}
  264.  
  265. FUNCTION CallTerminalCacheProc(refCon: LONGINT; theTermData: TermDataBlockPtr; userRoutine: TerminalCacheUPP): LONGINT;
  266.     {$IFC NOT GENERATINGCFM}
  267.     INLINE $205F, $4E90;
  268.     {$ENDC}
  269.  
  270. PROCEDURE CallTerminalSearchCallBackProc(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect; userRoutine: TerminalSearchCallBackUPP);
  271.     {$IFC NOT GENERATINGCFM}
  272.     INLINE $205F, $4E90;
  273.     {$ENDC}
  274.  
  275. FUNCTION CallTerminalClikLoopProc(refCon: LONGINT; userRoutine: TerminalClikLoopUPP): BOOLEAN;
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $205F, $4E90;
  278.     {$ENDC}
  279.  
  280. FUNCTION CallTerminalEnvironsProc(refCon: LONGINT; VAR theEnvirons: TermEnvironRec; userRoutine: TerminalEnvironsUPP): CMErr;
  281.     {$IFC NOT GENERATINGCFM}
  282.     INLINE $205F, $4E90;
  283.     {$ENDC}
  284.  
  285. PROCEDURE CallTerminalChooseIdleProc(userRoutine: TerminalChooseIdleUPP);
  286.     {$IFC NOT GENERATINGCFM}
  287.     INLINE $205F, $4E90;
  288.     {$ENDC}
  289.  
  290. FUNCTION CallTerminalToolDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: TerminalToolDefUPP): LONGINT;
  291.     {$IFC NOT GENERATINGCFM}
  292.     INLINE $205F, $4E90;
  293.     {$ENDC}
  294.  
  295. FUNCTION InitTM: TMErr;
  296. FUNCTION TMGetVersion(hTerm: TermHandle): Handle;
  297. FUNCTION TMGetTMVersion: INTEGER;
  298. FUNCTION TMNew({CONST}VAR termRect: Rect; {CONST}VAR viewRect: Rect; flags: TMFlags; procID: INTEGER; owner: WindowPtr; sendProc: TerminalSendUPP; cacheProc: TerminalCacheUPP; breakProc: TerminalBreakUPP; clikLoop: TerminalClikLoopUPP; environsProc: TerminalEnvironsUPP; refCon: LONGINT; userData: LONGINT): TermHandle;
  299. PROCEDURE TMDispose(hTerm: TermHandle);
  300. PROCEDURE TMKey(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  301. PROCEDURE TMUpdate(hTerm: TermHandle; visRgn: RgnHandle);
  302. PROCEDURE TMPaint(hTerm: TermHandle; {CONST}VAR theTermData: TermDataBlock; {CONST}VAR theRect: Rect);
  303. PROCEDURE TMActivate(hTerm: TermHandle; activate: BOOLEAN);
  304. PROCEDURE TMResume(hTerm: TermHandle; resume: BOOLEAN);
  305. PROCEDURE TMClick(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  306. PROCEDURE TMIdle(hTerm: TermHandle);
  307. FUNCTION TMStream(hTerm: TermHandle; theBuffer: UNIV Ptr; theLength: LONGINT; flags: CMFlags): LONGINT;
  308. FUNCTION TMMenu(hTerm: TermHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  309. PROCEDURE TMReset(hTerm: TermHandle);
  310. PROCEDURE TMClear(hTerm: TermHandle);
  311. PROCEDURE TMResize(hTerm: TermHandle; {CONST}VAR newViewRect: Rect);
  312. FUNCTION TMGetSelect(hTerm: TermHandle; theData: Handle; VAR theType: ResType): LONGINT;
  313. PROCEDURE TMGetLine(hTerm: TermHandle; lineNo: INTEGER; VAR theTermData: TermDataBlock);
  314. PROCEDURE TMSetSelection(hTerm: TermHandle; {CONST}VAR theSelection: TMSelection; selType: TMSelTypes);
  315. PROCEDURE TMScroll(hTerm: TermHandle; dh: INTEGER; dv: INTEGER);
  316. FUNCTION TMValidate(hTerm: TermHandle): BOOLEAN;
  317. PROCEDURE TMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  318. FUNCTION TMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  319. PROCEDURE TMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  320. FUNCTION TMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  321. PROCEDURE TMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  322. PROCEDURE TMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  323. PROCEDURE TMSetupPostflight(procID: INTEGER);
  324. FUNCTION TMGetConfig(hTerm: TermHandle): Ptr;
  325. FUNCTION TMSetConfig(hTerm: TermHandle; thePtr: UNIV Ptr): INTEGER;
  326. FUNCTION TMIntlToEnglish(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  327. FUNCTION TMEnglishToIntl(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  328. PROCEDURE TMGetToolName(id: INTEGER; VAR name: Str255);
  329. FUNCTION TMGetProcID(name: ConstStr255Param): INTEGER;
  330. PROCEDURE TMSetRefCon(hTerm: TermHandle; refCon: LONGINT);
  331. FUNCTION TMGetRefCon(hTerm: TermHandle): LONGINT;
  332. PROCEDURE TMSetUserData(hTerm: TermHandle; userData: LONGINT);
  333. FUNCTION TMGetUserData(hTerm: TermHandle): LONGINT;
  334. FUNCTION TMAddSearch(hTerm: TermHandle; theString: ConstStr255Param; {CONST}VAR where: Rect; searchType: TMSearchTypes; callBack: TerminalSearchCallBackUPP): INTEGER;
  335. PROCEDURE TMRemoveSearch(hTerm: TermHandle; refnum: INTEGER);
  336. PROCEDURE TMClearSearch(hTerm: TermHandle);
  337. FUNCTION TMGetCursor(hTerm: TermHandle; cursType: TMCursorTypes): Point;
  338. FUNCTION TMGetTermEnvirons(hTerm: TermHandle; VAR theEnvirons: TermEnvironRec): TMErr;
  339. FUNCTION TMChoose(VAR hTerm: TermHandle; where: Point; idleProc: TerminalChooseIdleUPP): INTEGER;
  340. PROCEDURE TMEvent(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  341. FUNCTION TMDoTermKey(hTerm: TermHandle; theKey: ConstStr255Param): BOOLEAN;
  342. FUNCTION TMCountTermKeys(hTerm: TermHandle): INTEGER;
  343. PROCEDURE TMGetIndTermKey(hTerm: TermHandle; id: INTEGER; VAR theKey: Str255);
  344. PROCEDURE TMGetErrorString(hTerm: TermHandle; id: INTEGER; VAR errMsg: Str255);
  345.  
  346. {$ALIGN RESET}
  347. {$POP}
  348.  
  349. {$SETC UsingIncludes := TerminalsIncludes}
  350.  
  351. {$ENDC} {__TERMINALS__}
  352.  
  353. {$IFC NOT UsingIncludes}
  354.  END.
  355. {$ENDC}
  356.